# Title: numero mayor de una lista				Filename: max.s
# Autho: Arturo Luquin Castillo           Date 08/03/2017
# Description: Numero maximo en una lista
# Input: -
# Output: Max

@ max.s



@ r1 - Utilizado para mantener la direccion de los elemntos de datos
@ r0 - Utilizado para los datos mas grandes
@ r3 - Utilizado para el elemento de dato actual

.section          .data

numbers:                        @ Los datos que vamos a utilizar
.long   3,67,34,222,45,75,54,34,44,33,22,11,66,0

.global   _start
##############INICIA LA EJECUCION##############
_start:
ldr %r1, =numbers               @  r1 se utiliza  iniciar la direccion de los numeros
ldr %r3, [%r1]                  @  r3 carga el primer numero
mov %r0, %r3                    @ Al inicio el numero actual debe ser el mas grande

loop:
  cmp %r3, $0                   @ se revisa si r3  tiene un 0
  beq exit                      @ si se tiene un 0 sale 
  ldr %r3, [%r1, #4]!           @ se carga el siguiente dato en r3
  cmp %r3, %r0                   @ se compara  r0 y r3
  ble loop                      @ se inicia un ciclo si r3 <= r0
  mov %r0, %r3                  @ si no se pone  r3 en r0
  bal loop                      @ regresamos al  inicio del bucle
  
exit:                           @ el numero mayor se guarda en r0
mov %r7, $1                     @ se prepara para salir 
svc $0                          @ se activa  el Kernel
.end                            @ este seria el final del codigo
